The present invention generally relates to the field of microcontrollers. More particularly, the present invention relates to the field of clocking architecture utilized within microcontrollers.
Modem research and technology have provided society with a wide variety of different devices. It is appreciated that some of these modern devices are very powerful and useful to their users. For example, some of the modem devices that fall into this category include: computers which occupy large office space down to computers which are held in one""s hand, satellites which orbit around earth relaying a multitude of communication signals, global positioning system (GPS) devices capable of determining the specific locations of their users on the earth, microwave ovens capable of quickly cooking food, cellular phones which enable their users to communicate wirelessly with other people, to name a few. Additionally, it should be appreciated that some modern devices also provide entertainment to their users. For instance, some of the modern devices which fall into this category include: portable and fixed televisions which provide a wide variety of visual and audio programming to their users, video cassette recorders (VCRs) which enable their users to record television shows for later viewing and also enable them to watch (for example) prerecorded movies on a television set, portable and fixed radio receivers which provide their users music along with a wide array of different audio programming, video game consoles which challenge their users with varying situations within different virtual realities, and portable and fixed compact disc (CD) players which provide music to their users.
One of the enabling components of several of the above mentioned modern devices is a microcontroller or MCU. Specifically, the microcontroller is typically defined as a single chip (integrated circuit) that includes a processor, volatile memory such as Random Access Memory (RAM), non-volatile memory such as Read Only Memory (ROM), clocking source, and an input/output control unit. As such, the microcontroller is a computer on a chip. It should be appreciated that microcontrollers have been utilized in various applications for many years. Primarily, microcontrollers are used in control-oriented applications that are interrupt-driven, sensing and controlling external events. Microcontrollers are frequently found in a wide variety of devices and applications.
For example, microcontrollers may be found in appliances such as microwave ovens, refrigerators, televisions, VCRs, and stereos. Furthermore, microcontrollers may also be found within computer equipment such as laser printers, modems, and disk drives. Additionally, microcontrollers may be found within automobiles (e.g., engine control, diagnostics, climate control), environmental control devices (e.g., greenhouse, factory, home), aerospace, and thousands of other uses.
It should be understood that microcontrollers may be fabricated to provide particular functionality. As such, there are many different microcontrollers for many different functions. However, there is also an advanced microcontroller which includes one or more programmable logic blocks which enable the microcontroller to be specifically programmed to perform different functions. As such, an advanced microcontroller with programmable logic blocks is typically able to be utilized for a wider variety of different applications than a customized microcontroller.
There are different ways to implement programmable logic blocks within a microcontroller. For example, the Field Programmable Gate Array (FPGA) has become very popular in recent years, even being utilized in several microcontroller applications. One reason for its popularity is the shortage in design cycle time that may be achieved by using programmable devices. Furthermore, FPGAs can be programmed to realize different digital functions. In particular, many FPGAs have programmable look-up tables to realize different digital functions. Usually, a FPGA contains from a few to tens of thousands of programmable logic blocks and an even greater number of flip-flops, each programmable logic block having a look-up table, multiplexers, and flip-flops. Therefore, by using programmable logic blocks within a microcontroller, the microcontroller may be programmed so that it can be utilized for a wide variety of different applications.
However, there are disadvantageous associated with microcontrollers that include one or more programmable logic blocks. For example, the clocking functionality of a microcontroller is typically customized to support specific functions in order to satisfy the circuit needs of a microcontroller customer. Consequently, the range of functionality of the programmable logic blocks may be restricted by such customization.
Accordingly, a need exists for a system and method for providing a wide variety of different clocking signal frequencies to one or more programmable logic blocks of a microcontroller thereby enabling them to perform a wider variety of functionality and applications. The present invention provides a method and system which accomplishes the above mentioned need.
For example, one embodiment of the present invention is a programmable clock architecture for a microcontroller that provides multiple different clocking signal frequencies that may be utilized by one or more programmable logic blocks of the microcontroller. In this manner, the clocking architecture enables the programmable logic blocks to perform a wider variety of functions because they have access to a wider variety of clock signal frequencies. Specifically, the clocking architecture of the present embodiment includes a plurality of clocking sources. For example, the output clocking signal of one of the clock oscillators is divided down to different smaller frequencies and also multiplied to provide more frequencies that may be utilized by the programmable circuit blocks and processor of the microcontroller. Additionally, the clocking architecture includes a programmable option of utilizing precision clocking signals and/or less precise clocking signals depending on the desired applications of the microcontroller""s programmable circuit blocks.
In another embodiment, the present invention includes a clock architecture in a microcontroller having a microprocessor and programmable logic. The clock programmable circuit. It should be understood that the programmable circuit generates a plurality of programmable clock signals, one for the microprocessor.
The present invention provides these advantages and others which will no doubt become obvious to those of ordinary skill in the art after having read the following detailed description of embodiments in accordance with the present invention. architecture includes a first internal clock oscillator circuit. Furthermore, the clock architecture includes an oscillator support circuit that functions as a clock oscillator when a crystal is coupled to the oscillator support circuit. The clock architecture also includes a programmable switch for selectively switching a clock signal line between the first internal clock oscillator circuit and the oscillator support circuit. It should be appreciated that the clock signal line is coupled to a circuit of the microcontroller. Additionally, the clock architecture includes a second internal clock oscillator circuit for providing a programmable circuit. It should be understood that the programmable circuit generates a plurality of programmable clock signals, one for the microprocessor.
In yet another embodiment, the present invention includes a method for providing a plurality of clock signals in a microcontroller having a microprocessor and programmable logic. The method includes the action of providing a first internal clock oscillator circuit. Additionally, the method includes the action of providing an oscillator support circuit that functions as a clock oscillator when a crystal is coupled to the oscillator support circuit. Within the present embodiment, the first internal clock oscillator circuit and the oscillator support circuit are for outputting a clock signal having a substantially similar frequency. Furthermore, the method includes the action of selectively switching a clock signal line between the first internal clock oscillator circuit and the oscillator support circuit. It should be appreciated that the clock signal line is coupled to a circuit of the microcontroller. Moreover, the method includes the action of providing a second internal clock oscillator circuit for outputting to a